#ifndef __STACK_H__
#define __STACK_H__

#include "Common.h"
#include "Object.h"

NAME_SPACE_BEGIN

template < typename T >
class Stack : public Object
{
public:
	virtual void push(const T& e) = 0;
	virtual void pop() = 0;
	virtual T top() const = 0;
	virtual void clear() = 0;
	virtual int size() const = 0;
};


NAME_SPACE_END
#endif
